package com.neusoft.mapper;

import com.neusoft.dto.MedicalTechnologyDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author akemihomurasama
 */
@Mapper
public interface MedicalTechnologyDtoMapper {
    /**
     * 根据患者id查询医技项目信息
     *
     * @param registerId 患者id
     * @param state      项目状态
     * @return 医技项目id
     */
    List<MedicalTechnologyDto> queryCheckTechWithTime(int registerId, String state);

    /**
     * 根据患者id查询医技项目信息
     *
     * @param registerId 患者id
     * @param state      项目状态
     * @return 医技项目id
     */
    List<MedicalTechnologyDto> queryInspectionTechWithTime(int registerId, String state);

    /**
     * 根据患者id查询医技项目信息
     *
     * @param registerId 患者id
     * @param state      项目状态
     * @return 医技项目id
     */
    List<MedicalTechnologyDto> queryDisposalTechWithTime(int registerId, String state);

    /**
     * 根据患者id和检查申请的状态同时查询患者要检查的项目列表同时携带检查申请id
     *
     * @param registerId 患者id
     * @param checkState 检查申请的状态
     * @return 医技项目列表，包含了医技项目所对应的检查申请的id
     */
    List<MedicalTechnologyDto> queryTechByIdListWithCheckId(@Param("registerId") int registerId, @Param("checkState") String checkState);

    /**
     * 根据患者id查询医技项目并携带申请时间和申请状态
     *
     * @param registerId 用户id
     * @return 医技项目列表
     */
    List<MedicalTechnologyDto> queryCheckTechListByRegisterId(int registerId);

    /**
     * 根据患者id查询医技项目并携带申请时间和申请状态
     *
     * @param registerId 用户id
     * @return 医技项目列表
     */
    List<MedicalTechnologyDto> queryDisposalTechListByRegisterId(int registerId);

    /**
     * 根据患者id查询医技项目并携带申请时间和申请状态
     *
     * @param registerId 用户id
     * @return 医技项目列表
     */
    List<MedicalTechnologyDto> queryInspectionTechListByRegisterId(int registerId);

    /**
     * 根据患者检查申请状态查询检查申请
     *
     * @param registerId 患者id
     * @param state      检查状态
     * @return 查询结果
     */
    List<MedicalTechnologyDto> queryTechByIdListWithCheckRequestId(int registerId, String state);

    /**
     * 根据患者检查申请状态查询检查申请
     *
     * @param registerId 患者id
     * @param state      检查状态
     * @return 查询结果
     */
    List<MedicalTechnologyDto> queryTechByIdListWithInspectionRequestId(int registerId, String state);

    /**
     * 根据患者检查申请状态查询检查申请
     *
     * @param registerId 患者id
     * @param state      检查状态
     * @return 查询结果
     */
    List<MedicalTechnologyDto> queryTechByIdListWithDisposalRequestId(int registerId, String state);
}
